package com.huluobo.a2203kotlinjetpackdemo.lifeCycle

import android.app.Dialog
import android.content.Context
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
import com.huluobo.a2203kotlinjetpackdemo.R

/**
 *  Created by LC on 2024/7/17.
 *  可以跟随activity生命周期的弹窗,当activity打开的时候展示,销毁的时候隐藏,不会造成内存泄漏
 */
class TipDialog(context: Context) : Dialog(context), LifecycleObserver {
    init {
        //init相当于构造方法,但是与构造方法不同的地方,他不是一个方法
        //类似于静态块,只要这个类进行了new的操作或者初始化,就会调用到
        if (context is AppCompatActivity) {
            //订阅关系
            context.lifecycle.addObserver(this)
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }


    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    private fun onShow() {
        show()
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    private fun onDismiss() {
        if (isShowing) {
            dismiss()
        }
    }
}